A term that is often used in digital technology is "hot insertion/hot withdrawal". This means that a component module working with a bus such as a Futurebus, is inserted or removed without powering off the entire system. Another often used terminology is "live insertion/withdrawal". This means that a component module of the bus is inserted or removed while other components of the bus are still making use of the bus. This occurs while the bus is still "alive" and used for transferring data.
Sometimes the concept of "hot insertion/withdrawal" is misunderstood. During the condition of a "hot insertion or withdrawal", all components of the bus will stop using the bus. However, they will continue to use the bus only "after" the process of insertion or withdrawal is completed.
However, while a "live insertion or withdrawal" is in process, other component modules on the bus will ignore the action and will continue as if nothing happened. Thus, the "live insertion/withdrawal" is a much more flexible system since operations continue as if nothing is happening to the bus. In this case, however, the probability of an electrical surge with glitches on the bus is extremely high and with it there is great probability that data corruption will occur.
In standard busses that support hot insertion/withdrawal or support live insertion withdrawal, it is up to the user to make sure that the system is protected against such problems of data corruption.
A typical method for protection of the data is an error checking system called LRC, longitudinal redundancy checking.
The longitudinal redundancy check (LRC) is a procedure used to check the accuracy of data transmitted over a communications link. LRC adds a calculated value to a block of data representing a transmitted message. The "calculated value" is based on the data in the message and is calculated both "before" the transmission and "after" the transmission. If the "before" and "after" values match, then the transmission is assumed to be accurate. If the values do not match, then a re-transmission is usually requested. The "calculated value" is often designated as CRC or cyclic redundancy code.
In some busses, for example the "Futurebus Plus", the address and the data are not only separated but occur in different phases of the data transfer operations. Further, in the Futurebus "Plus" network, use is made up of master and slave modules and in this case on the Futurebus Plus, the slave module does not know the amount of data that it is receiving or that it is in the condition of transmitting data. Hence, there is a potential for corruption of data in the slave module memory during conditions of "live insertion/withdrawal".
The present system uses the Futurebus Plus protocol and bus lines as specified in IEEE Specification 896.1 and it is targeted to handle the often occurring problem of data corruption which can occur during module insertion/withdrawal on the "Futurebus Plus" system bus, and in the slave modules holding slave memory units. The description and solution herein is specific to the Futurebus Plus but with minor modification can be extended to handle other busses which have these similar type of problems.